package com.medusa.aps.business.modules.basic.mp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.medusa.aps.business.model.pagination.Page;
import com.medusa.aps.business.modules.basic.model.input.MaterialDTO;
import com.medusa.aps.business.modules.basic.model.input.MaterialListDTO;
import com.medusa.aps.business.modules.basic.model.input.MaterialParam;
import com.medusa.aps.business.modules.basic.model.output.MaterialVO;
import com.medusa.aps.business.modules.basic.mp.entity.Material;

import java.util.List;
import java.util.Set;

/**
 * 物料服务接口
 *
 * @author yuxh
 * @since 2023-08-14 17:37:47
 */
public interface MaterialService extends IService<Material> {

    /**
     * 删除物料
     *
     * @param materialIds 物料id集合
     */
    void deleteMaterials(Set<Long> materialIds);

    /**
     * 分页查询所有数据
     *
     * @param materialParam 分页对象
     * @return 所有数据
     */
    Page<Material> selectAll(MaterialParam materialParam);

    /**
     * 批量保存物料
     *
     * @param materials 物料集合
     */
    void saveBatchMaterial(List<MaterialDTO> materials);

    /**
     * 根据参数查询物料列表
     *
     * @param materialList 参数
     * @return 物料列表
     */
    List<MaterialVO> getSupplierMaterials(MaterialListDTO materialList);

    /**
     * 修改物料
     *
     * @param material 物料
     */
    void updateMaterial(MaterialDTO material);
}

